/*
 * @(#)SSEArrayList.java 1.0 2005-2-28
 * Copyright 2005 VandaGroup, Inc. All rights reserved.
 */
package com.vanda.util;
import java.sql.Date;
import java.text.DateFormat;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
/*******
 * 类说明:
 * 公共函数类
 * <P>@author 蒋勇
 * <P>@version 1.0 2005-3-21
 */
public class PubFunc {
	/**
	 * 设置字符串前导字符
	 * @param code java.lang.String　待处理字符串
	 * @param addChar java.lang.String　前导字符串
	 * @param len int　长度
	 */
	public static String getAddCode(String source, String addStr, int len) {
		if (source == null) {
			return "";
		}
		StringBuffer _rtn = new StringBuffer(100);
		if (source.length() < len) {
			for (int i = 0; i < len - source.length(); i++) {
				_rtn.append(addStr);
			}
			return _rtn + source;
		} else {
			return source;
		}
	}
	/**
	 * 说明：
	 * 格式化数字
	 * @param dValue
	 * @param pattern
	 * @return
	 */
	public static String formatNumber(double dValue, String pattern) {
		DecimalFormat df = df = new DecimalFormat(pattern);
		//		df.setMaximumFractionDigits(precision);
		return df.format(dValue);
	}
	/**
	 * 说明：
	 * 格式化数字
	 * @param dValue
	 * @return
	 */
	public static String formatNumber(double dValue) {
		String pattern = ",##0.00";
		return formatNumber(dValue, pattern);
	}
	/**
	 * 说明：
	 * 格式化字符串
	 * @param dValue
	 * @return
	 */
	public static double formatString(String sValue) {
		if (sValue == null) {
			return Double.NEGATIVE_INFINITY;
		}
		double d = 0d;
		int index = sValue.indexOf(",");
		String str = "";
		while (index >= 0) {
			str += sValue.substring(0, index);
			sValue = sValue.substring(index + 1, sValue.length());
			index = sValue.indexOf(",");
		}
		str += sValue;
		try {
			d = Double.parseDouble(str);
		} catch (Exception e) {
			d = Double.NEGATIVE_INFINITY;
		}
		return d;
	}
	private static int ONEDATE = 24 * 60 * 60 * 1000;
	/**
	 * 计算两个日期的差值 (前提：d2>d1，否则得到负数)
	 * @param d1
	 * @param d2
	 * @return
	 */
	public static int getBalance(Date d1, Date d2) {
		if (d1 == null || d2 == null) {
			return 0;
		}
		long time1 = d1.getTime();
		long time2 = d2.getTime();
		return (int) ((time2 - time1) / ONEDATE);
	}
	/**
	 * 方法说明:
	 * 计算日期
	 * @param date
	 * @param days
	 * @return Date
	 * @throws VandaException
	 * @author wkf3915 2005-3-21
	 */
	public static Date addDate(Date date, int days) {
		GregorianCalendar calendar = new GregorianCalendar();
		calendar.clear();
		DateFormat format = new SimpleDateFormat("yyyy");
		int year = Integer.valueOf(format.format(date)).intValue();
		format = new SimpleDateFormat("MM");
		int month = Integer.valueOf(format.format(date)).intValue() - 1;
		format = new SimpleDateFormat("dd");
		int date_of_month = Integer.valueOf(format.format(date)).intValue();
		calendar.set(year, month, date_of_month);
		calendar.add(GregorianCalendar.DATE, days);
		return new Date(calendar.getTime().getTime());
	}
	/**
	 * 根据huawei.cfi.system.debug标志决定是否打印
	 * @param str
	 */
	public static void log(String str) {
		String debug = Globals.getValue("huawei.cfi.system.log");
		boolean output = false;
		if (debug != null && debug.trim().equals("true")) {
			output = true;
		}
		if (output) {
			System.out.println(str);
		}
	}
	//	/**
	//	 * 方法说明:
	//	 * 将用“，”分割的字符串转化为字符串的List
	//	 * @return
	//	 * @author 王培 2005-7-11
	//	 */
	//	public static String[] split(String string){
	//		return string.split(",");
	//	}
}